<?php
/*
从去年2007开始独立写程序  一直没有一个完整的过程  现在终于想开始总结一下 刚好也在新公司开始新的项目

正好边整理边实施  希望作为我学习和以后的蓝本


项目确立

1. 先有新项目的需求

2. 发掘需求方的真实和潜在的想法 按照需求划分功能结构模块 然后定义详细的功能 涉及到的技术知识

   这一环节要不断的和需求方探讨  但不用涉及具体的程序细节

   可能是属于软件工程相关的吧 没有学好啊 0.0


初期选择

1. 这个应该是和上面的并行的

2. 假如程序全部做好了 她应该怎样运行

   几种可能

    (1) 需要施行这个项目 提供一台服务器 分别装上数据库 服务器 php代码

        或者一个绿色安装包 比如 xampp 直接把源程序放到里面  打包拷到客户的机器上即可

    (2) 只需要源代码+数据库结构就可以了 只需要在客户的机器上面安装  比如iis的服务器 mssql的数据库

        php程序  不管怎么说 要准备多种解决方案  除非是放在自己的服务器上面

   当然也有其他的问题   怎么保护源代码 涉及到哪些版权  项目源代码的版权  以及加密的问题

3. 选择数据库  用来储存数据  可能是mysql mssql oracle 等等  可能都必须考虑到


   // 需要一个 共用的接口  一个类  比如 php的pdo  听说php6后只使用PDO连接数据库

   // 但是PDO还是需要封装一下  数据库的版本  可能选择一个较为稳定的版本

   // 何种编码  gb2312还是utf8

   另外 应该学习一下数据库的建模工具  这个或许更清晰

4. 客户端的javascript需要使用ajax吗 还是全部使用ajax  想要快速开发只能选择框架了

   有不少的框架可以选择 像轻量级的jQuery 或者 重量级的Ext  不管怎么说 选择适合的一款

5. css有不少的框架   不过除非使用flash这类应用  比如flex

   否则浏览器兼容的问题相当的多 IE firefox 等  就算是IE 也有IE6 IE7的区别

   即使是IE6的SP版本之间 也小有区别 非常复杂  或许可以只支持IE  对我而且目前比较郁闷  虽然已经能够熟练的使用css了

6. 最后就只有是php了 php4 还是php5？ 只有php5了  php6都不远了  也要接触一下面向对象了  但是面向过程或许也不错

   有很多php的框架可以选择  重量级的 比如ZF  轻量级的 比如FLEAPHP  看怎么选择  不过只选适合的  也可以不使用框架

   同样是页面的编码 gb2312还会死utf8

7. 还有web服务器  常用的就apache和iis了 都会用最好了

8. 还有其他的问题 比如源代码版本控制的问题 SVN是一个选择

9. 使用什么开发工具？ 比如editplus  选择自己适合的吧  当然 IDE最好了

10.测试也是开发的一个方面   不管是数据库的压力测试  还是php的测试

   总之 应该会有相关的工具吧


初期定义

1. 前提是模块已经大致的划分清楚了

2. 一个项目规范 编码规范

   包含 文件结构 文件命名  编码规范 注释规范 命名规范 编程范例 等

3. 数据库结构的定义  最好能把各表的关系整理清楚 能用建模工具表现出来最好

4. 编码的结构 比如使用框架的mvc OOP 比如使用模板

   刚好我现在的项目正在使用简单的一个模板  非oop的形式  我还是受了不少discuz！的影响

   选择器是个不错的选择

5. 每一个页面 模块都需要具体的页面逻辑图  或者功能逻辑图

   便于检查

6. 完成时间表 按模块划分 按功能划分  功能相近的模块可以一起完成 --先完成完善一个  其他的参照这个

   时间偏重于相近模块的第一个  其他的时间可以分配少一点

7. 提前考察所需要用到的技术点  完成简单的例子

8. 听过某人的一句话 如果某段代码有3行以上被重复使用 最好封装一下

   设计模式这块我还要多学习才可以  oop 还是很重要的

9. 需要缓存的地方 缓存方法

10.静态页面

11.




细节

1. 登录  关于session cookie的问题 安全性

2. 验证码

3. 表单以及表单验证

   php实现 和 javascript实现

4.
